MySQL中的字符串拼接函数详解 您所在的位置:网站首页 mysql 字段拼接字符串 MySQL中的字符串拼接函数详解

MySQL中的字符串拼接函数详解

2024-07-14 03:44| 来源: 网络整理| 查看: 265

CONCAT函数

功能:连接一个或多个字符串,然后返回连接后的字符串。 函数形式:CONCAT(str1,str2,…)

示例1:单个字符串连接

mysql> select concat('Hello'); +-----------------+ | concat('Hello') | +-----------------+ | Hello | +-----------------+ 1 row in set (0.00 sec)

示例2:连接多个字符串

mysql> select concat('Hello',' ','world'); +-----------------------------+ | concat('Hello',' ','world') | +-----------------------------+ | Hello world | +-----------------------------+ 1 row in set (0.00 sec)

示例3:任意连接的字符串为NULL,则连接后返回的结果也为NULL

mysql> select concat('Hello',' ','world',null); +----------------------------------+ | concat('Hello',' ','world',null) | +----------------------------------+ | NULL | +----------------------------------+ 1 row in set (0.00 sec)

CONCAT_WS函数

功能:通过指定的“连接符”连接一个或多个字符串,然后返回连接后的字符串。 函数形式:CONCAT_WS(separator,str1,str2,…)

示例1:通过下划线连接多个字符串

mysql> select concat_ws('_','功能编号','需求编号','用例编号'); +-------------------------------------------------------------+ | concat_ws('_','功能编号','需求编号','用例编号') | +-------------------------------------------------------------+ | 功能编号_需求编号_用例编号 | +-------------------------------------------------------------+ 1 row in set (0.00 sec)

示例2:当连接的字符串中存在NULL时,则连接后返回的结果不为NULL

mysql> select concat_ws('_','功能编号','需求编号','用例编号',null); +------------------------------------------------------------------+ | concat_ws('_','功能编号','需求编号','用例编号',null) | +------------------------------------------------------------------+ | 功能编号_需求编号_用例编号 | +------------------------------------------------------------------+ 1 row in set (0.00 sec)

示例3:当分隔符为null时,则返回的结果也为NULL

mysql> select concat_ws(null,'功能编号','需求编号','用例编号'); +--------------------------------------------------------------+ | concat_ws(null,'功能编号','需求编号','用例编号') | +--------------------------------------------------------------+ | NULL | +--------------------------------------------------------------+ 1 row in set (0.00 sec)

GROUP_CONCAT函数

功能:将属于同一分组的值进行连接,然后按分组返回结果字符串。 函数形式:GROUP_CONCAT(expr)

示例数据,假设Course表存在以下数据

mysql> select * from Course; +-------+--------------+ | stuId | courseName | +-------+--------------+ | 1001 | 大学语文 | | 1001 | 原理力学 | | 1001 | 固体物理 | | 1002 | 大学英语 | | 1002 | 专八英语 | +-------+--------------+ 5 rows in set (0.00 sec)

示例1:获取每个学生的所有课程,并在一行显示

mysql> SELECT stuId, GROUP_CONCAT(courseName) AS courses FROM Course GROUP BY stuId; +-------+----------------------------------------+ | stuId | courses | +-------+----------------------------------------+ | 1001 | 大学语文,原理力学,固体物理 | | 1002 | 大学英语,专八英语 | +-------+----------------------------------------+ 2 rows in set (0.02 sec)

示例2:GROUP_CONCAT的默认分隔符为“,”,也可通过SEPARATOR定义分隔符

mysql> SELECT stuId, GROUP_CONCAT(courseName SEPARATOR '&&') AS courses FROM Course GROUP BY stuId; +-------+------------------------------------------+ | stuId | courses | +-------+------------------------------------------+ | 1001 | 大学语文&&原理力学&&固体物理 | | 1002 | 大学英语&&专八英语 | +-------+------------------------------------------+ 2 rows in set (0.00 sec)

示例3:对同一分组内的值进行排序后在连接

mysql> SELECT stuId, GROUP_CONCAT(courseName ORDER BY courseName desc) AS courses FROM Course GROUP BY stuId; +-------+----------------------------------------+ | stuId | courses | +-------+----------------------------------------+ | 1001 | 大学语文,固体物理,原理力学 | | 1002 | 大学英语,专八英语 | +-------+----------------------------------------+ 2 rows in set (0.00 sec)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有